package main

import (
	"errors"
	"fmt"
)

func test1() {
	err := read("config1.ini")
	if err != nil {
		// 输出错误并终止程序
		panic(err)
	}
	fmt.Println("程序无异常，继续执行。。。")
}

// 抛出异常
func read(name string) (err error) {
	if name == "config.ini" {
		fmt.Println("读取成功")
		return nil
	}
	return errors.New("读取失败")
}

// 没有try catch 使用 defer + recover 处理
func main() {
	//test(10,0)
	fmt.Println("=====")
	test1()
}

func test(a int, b int) int {
	defer func() {
		err := recover() // 内置函数，可以捕获异常
		if err != nil {
			fmt.Println("err = ", err)
		}
	}()
	/*defer func() {
		if err := recover(); err != nil {
			fmt.Println("err = ",err)
		}
	}()*/
	res1 := a / b
	fmt.Println(res1)
	return res1
}
